package spittr.config;

import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
import spittr.web.WebConfig;

/**
 * 1.扩展AbstractAnnotationConfigDispatcherServletInitializer的任意类都会自动地配置
 * DispatcherServlet和Spring应用上下文,Spring的应用上下文会位于应用程序的Servlet上下文中;
 * 2.当DispatcherServlet启动的时候,它会创建Spring应用上下文,并加载配置文件或配置类中声明的bean;
 * 但是在Spring web应用中,通常还会有另外一个应用上下文,由ContextLoaderListener创建
 * 3.实际上,AbstractAnnotationConfigDispatcherServletInitializer会同时创
 * DispatcherServlet和ContextLoaderListener.
 * Created by ThinkPad on 2017/9/7.
 */
public class SpittrWebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
    /**
     * 将一个或多个路径映射到DispatcherServlet上
     * @return
     */
    @Override
    protected String[] getServletMappings() {
        return new String[] {"/"};
    }

    /**
     * 返回的带有@Configuration注解的类将会用来配置
     * ContextLoaderListener创建的应用上下文中的bean
     * @return
     */
    @Override
    protected Class<?>[] getRootConfigClasses() {
        return new Class<?>[] {RootConfig.class};
    }

    /**
     * 返回的带有@Configuration注解的类将会用来定义DispatcherServlet
     * 应用上下文中的bean
     * @return
     */
    @Override
    protected Class<?>[] getServletConfigClasses() {
        return new Class<?>[] {WebConfig.class};
    }

}
